package com.xinggq.pay.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xinggq.pay.service.entity.CallbackRetryLogEntity;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 回调重试日志服务接口
 * @author xinggq
 * @since 2025/9/16
 */
public interface CallbackRetryLogService extends IService<CallbackRetryLogEntity> {

  /**
   * 保存回调重试日志
   */
  void saveCallbackLog(CallbackRetryLogEntity logEntity);


  /**
   * 查询需要重试的记录
   */
  List<CallbackRetryLogEntity> findRetryRecords(LocalDateTime currentTime, int maxRetryCount);

  /**
   * 更新重试记录
   * callbackStatus 回调状态(0:失败 1:成功)
   */
  void updateRetryRecord(Long id, String responseData, Integer callbackStatus, LocalDateTime nextRetryTime);

  /**
   * 根据tradeNo查询最新的记录
   */
  CallbackRetryLogEntity findLatestByTradeNo(String tradeNo);
}